package web.mb;

import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import metier.entities.Declaration;
import metier.entities.Message;
import metier.entities.Offre;
import metier.entities.Paiement;
import metier.sess.IDeclarationLocal;
import metier.sess.IMessageLocal;
import metier.sess.IOffreLocal;
import metier.sess.IPaiementLocal;
import metier.sess.IUtilisateurLocal;


@ManagedBean
@RequestScoped
public class StatisticMB {
	
	@EJB
	private IPaiementLocal metier;
	
	
	@EJB 
	private IMessageLocal metierMessage;
	
	@EJB 
	private IUtilisateurLocal metieruser;
	
	@EJB
	private IDeclarationLocal metierDeclaration;
	
	@EJB
	private IOffreLocal metierOffre;
	
	public List<Paiement> listePaiement()
	{
		System.out.println(metier.listePaiementByStatus(0).size());
		return metier.listePaiementByStatus(0);
	}
	
	
	public String confirm(Integer idp)
	{
	  Paiement p=metier.getPaiement(idp);
	  if(p.getRaison().compareTo("Accept Bid")==0)
	  {
		  Declaration d=p.getDeclaration();
           if(p.getClient().getTranExp().compareTo("Tra")==0)
           {
        	  
        	  d.setStatut(2);
        	 
        	  metierDeclaration.updateDeclaration(d);
        	  
        	  
        	  
        	  
        	  Offre o=d.getOffre();
        	  o.setDecGanante(d);
        	  metierOffre.updateOffre(o);
        	  
        	  //envoyer des messages aux deux partie prenantes
        	  Message m=new Message("winner bid", metieruser.getUtilisateur(34), d.getTransporteur(), "your bid "+d.getIdDeclaration()+"is the winner please contact the shipper in "+d.getOffre().getExpediteur().getEmail(), new Date());
        	  Message m1=new Message("winner bid", metieruser.getUtilisateur(34), d.getOffre().getExpediteur(), "the winner bid is  "+d.getIdDeclaration()+" please contact the carrier in "+d.getTransporteur().getEmail(), new Date());
              metierMessage.addMessage(m);
              metierMessage.addMessage(m1);
           }
           else
           {
        	   d.setStatutAccept("E");
        	   metierDeclaration.updateDeclaration(d);
        	   Message m=new Message("bid accept", metieruser.getUtilisateur(34), d.getTransporteur(), "your bid "+d.getIdDeclaration()+"is accepted please accept it ", new Date());
        	   metierMessage.addMessage(m);
        	   
           }
	  
	  }
	
		  p.setStatutPaiement(true);
		  metier.updatePaiement(p);
		return "g";  
	  
	}

}
